package com.mbengue.corp.artisan.utils;

import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
import java.util.List;

import javax.swing.JOptionPane;

import com.mbengue.corp.artisan.modele.Article;
import com.mbengue.corp.artisan.modele.Client;
import com.mbengue.corp.artisan.modele.Feuille;

public class Outil {
  public static String[] EN_TETE_CLIENT = { "Nom", "Prénom", "Téléphone", "Adresse", "Code Postal", "Ville" };
  public static String[] EN_TETE_ARTICLE = { "Code", "Designation", "Prix HT (€)", "TVA" };
  public static String[] EN_TETE_FEUILLE = { "Numéro", "Artisan", "Montant (€)", "Date", "Client" };

  @SuppressWarnings("rawtypes")
  public static Object[][] tableauArticle(List articles) {
    if (articles == null) {
      return null;
    }

    Object[][] resultat = new Object[articles.size()][4];
    for (int index = 0; index < articles.size(); index++) {
      Article article = (Article) articles.get(index);
      resultat[index] = article.toArray();
    }

    return resultat;
  }

  public static Object[][] tableauClient(List<Client> clients) {
    if (clients == null) {
      return null;
    }

    Object[][] resultat = new Object[clients.size()][6];
    for (int index = 0; index < clients.size(); index++) {
      resultat[index] = clients.get(index).toArray();
    }
    return resultat;
  }

  public static Object[][] tableauFeuille(List<Feuille> feuilles) {
    if (feuilles == null) {
      return null;
    }

    Object[][] resultat = new Object[feuilles.size()][5];
    for (int index = 0; index < feuilles.size(); index++) {
      resultat[index] = feuilles.get(index).toArray();
    }
    return resultat;
  }

  public static void imprimer(String nomFichier) {
    if (Desktop.isDesktopSupported()) {
      if (Desktop.getDesktop().isSupported(java.awt.Desktop.Action.OPEN)) {
        try {
          Desktop.getDesktop().open(new File(nomFichier));
        } catch (IOException ex) {
          // Cette exception ne devrait jamais être levée
        }
      } else {
        JOptionPane
            .showMessageDialog(
                null,
                "L'impression n'est pas supportée par votre système d'exploitation. Vous devez d'abord exporter la vue puis imprimer manuellement le document",
                "Attention", JOptionPane.WARNING_MESSAGE);
      }
    } else {
      JOptionPane
      .showMessageDialog(
          null,
              "L'impression n'est pas supportée par votre système d'exploitation. Vous devez d'abord exporter la vue puis imprimer manuellement le document",
          "Attention", JOptionPane.WARNING_MESSAGE);
    }
  }
}
